{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# C3D网络模型\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 视频帧采样与预处理\n",
    "\n",
    "### 训练阶段\n",
    "\n",
    "从视频video V中随机选取5个clips，每个clip视频长2s；将每个clip视频帧resize到128*171；对每个视频clip，在spatial和temporal两个维度进行随机crop出16*112*112(16frames*h*w)，再random horizontally flip；将每个视频clip的16*112*112输入到C3D进行训练。\n",
    "\n",
    "### 推理阶段\n",
    "\n",
    "从视频video V中随机选取10个clips，每个clip采样center crop，10个clips分别过C3D-net得到prediction，将这10个clips的预测值average作为该视频的prediction。"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 网络结构"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## 总结\n",
    "\n",
    "### 优点\n",
    "\n",
    "- C3D使用3D CNN构造了一个效果不错的网络结构，对于基于视频的问题均可用来提取特征\n",
    "- C3D is good feature learning machines that model appearance and motion simultaneously\n",
    "- C3D 以16*112*112(16帧*112宽*112高)输入，对short-range temporal video进行建模，达到了realtime效果\n",
    "\n",
    "### 不足\n",
    "\n",
    "- C3D 以16帧进行输入，对long-range temporal video建模不友好\n",
    "- 纯采用3D Conv 相比 2D Conv 比较耗时"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
